'''
Created on 12/10/2011

@author: silviojr
'''

class EntradaThesaurus(object):
    '''
    classdocs
    '''


    def __init__(self, pos, nome):
        '''
        Constructor
        '''
        self.pos = pos
        self.nome = nome
        self.sinonimos = []
        self.antonimos = []
        
    def insereSinonimo(self, sinonimo):
        for sin in self.sinonimos:
            if sin == sinonimo:
                return
        self.sinonimos.append(sinonimo)
    
    def insereAntonimo(self,antonimo):
        for ant in self.antonimos:
            if ant == antonimo:
                return
        self.antonimos.append(antonimo)
    
    def imprimeSinonimos(self):
        print 'Sinonimos de ',self.nome, ' da classe ', self.pos
        for sin in self.sinonimos:
            print sin
    
    def imprimeAntonimos(self):
        print 'Antonimos de ',self.nome, ' da classe ', self.pos
        for ant in self.antonimos:
            print ant
            
    def getSinonimos(self):
        return self.sinonimos
    
    def getAntonimos(self):
        return self.antonimos
        
        
        
class Thesaurus(object):
    def __init__(self):
        self.listaEntradas = []
        
    def insereTripla(self, pos, nome1, relacao, nome2):
        nome1encontrado = False
        for entrada in self.listaEntradas:
            if entrada.nome == nome1 and entrada.pos == pos:
                nome1encontrado = True
                if relacao == 'SINONIMO_DE':
                    entrada.insereSinonimo(nome2)
                else:
                    entrada.insereAntonimo(nome2)
        if nome1encontrado == False:
            if relacao == 'SINONIMO_DE':
                entrada = EntradaThesaurus(pos,nome1)
                entrada.insereSinonimo(nome2)
                self.listaEntradas.append(entrada)
            else:
                entrada = EntradaThesaurus(pos,nome1)
                entrada.insereAntonimo(nome2)
                self.listaEntradas.append(entrada)
                
    def imprimeThesaurus(self):
            for entrada in self.listaEntradas:
                entrada.imprimeSinonimos()
                entrada.imprimeAntonimos()
                
    def procuraTermo(self, termo):
        print 'Porcurando termo ', termo
        for entrada in self.listaEntradas:
            if entrada.nome == termo:
                entrada.imprimeSinonimos()
                entrada.imprimeAntonimos()
                
    def retornaSinonimos(self, termo, pos):
        for entrada in self.listaEntradas:
            if entrada.nome == termo and  entrada.pos == pos:
                return entrada.sinonimos
        print "nao achou sinonimos"
        
    def retornaAntonimos(self, termo, pos):
        for entrada in self.listaEntradas:
            if entrada.nome == termo and entrada.pos == pos:
                return entrada.antonimos
            
            
            
            
                
                
                
            
            
            
        
        